]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
5 years agost/theme-node-drawing: Render box-shadow independently of background-color
Daniel van Vugt [Thu, 27 May 2021 09:12:15 +0000 (17:12 +0800)]
st/theme-node-drawing: Render box-shadow independently of background-color

Until now, the absence of a `background-color` would cause `box-shadow`s
to be invisible. That was a bug because `box-shadow` is meant to be either
the color specified in `box-shadow`, or if none was specified then the
foreground `color`.

There is nothing in the spec that says the `box-shadow` rendering should
depend on `background-color`, so separate them. This ensures `box-shadow`
is rendered even when `background-color` is absent or transparent.

https://www.w3.org/TR/css-backgrounds-3/#box-shadow

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1904>

5 years agoshell: Drop dependency on ClutterX11 headers/gir
Carlos Garnacho [Tue, 11 May 2021 10:44:20 +0000 (12:44 +0200)]
shell: Drop dependency on ClutterX11 headers/gir

This can be replaced with MetaX11Display nowadays.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1841>

5 years agost/private: Set sampling_radius to match the blur radius
Daniel van Vugt [Thu, 24 Jun 2021 10:19:09 +0000 (18:19 +0800)]
st/private: Set sampling_radius to match the blur radius

From [the spec](https://www.w3.org/TR/css-backgrounds-3/#shadow-blur):

> the resulting shadow must approximate (with each pixel being within 5%
> of its expected value) the image that would be generated by applying to
> the shadow a Gaussian blur with a standard deviation [sigma] equal to
> half the blur radius

This does not change the value of `sigma`, it only corrects the value of
`sampling_radius` used to size the shadow texture. Since the texture is
no longer being slightly oversized it won't get scaled down when rendered
according to the dimensions provided by `st_shadow_get_box` in
`_st_paint_shadow_with_opacity`.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4409
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1897>

5 years agost/widget: Include the shadow in the paint volume
Daniel van Vugt [Thu, 24 Jun 2021 11:06:33 +0000 (19:06 +0800)]
st/widget: Include the shadow in the paint volume

Having an inaccurate paint volume didn't matter until ae338af1e8, but
after that having too small a paint volume resulted in apparent clipping.
Not because `clip_to_allocation` is set, but because the offscreen
framebuffer is sized to fit the paint volume only.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1897>

5 years agoibusCandidatePopup: Use plain actor as dummy cursor
Florian Müllner [Tue, 29 Jun 2021 19:17:27 +0000 (21:17 +0200)]
ibusCandidatePopup: Use plain actor as dummy cursor

Now that source actors no longer have to be widgets, we can use
a plain actor for the dummy cursor and save a bit of overhead.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1903>

5 years agoboxpointer: Handle non-widget source actors
Florian Müllner [Tue, 29 Jun 2021 18:13:00 +0000 (20:13 +0200)]
boxpointer: Handle non-widget source actors

There is no convincing reason why source actors must be widgets,
so lift that restriction.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1903>

5 years agoMagnifier: Filter caret tracking in gnome magnifier
Lee [Sat, 24 Apr 2021 17:03:35 +0000 (18:03 +0100)]
Magnifier: Filter caret tracking in gnome magnifier

Add a check to filter out caret tracking events that result in a caret
location of 0,0.

Fixes #4177

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1823>

5 years agostatus/power: Always sync after creating proxy
Florian Müllner [Mon, 28 Jun 2021 16:31:13 +0000 (18:31 +0200)]
status/power: Always sync after creating proxy

Otherwise the menu remains in an inconsistent state in case of an
error, until something else triggers a call to _sync() (like a
settings change).

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4431

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1901>

5 years agostatus/power: Update to new coding style
Florian Müllner [Mon, 28 Jun 2021 16:29:23 +0000 (18:29 +0200)]
status/power: Update to new coding style

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4431

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1901>

5 years agomagnifier: Remove needless actor
Carlos Garnacho [Mon, 28 Jun 2021 16:06:47 +0000 (18:06 +0200)]
magnifier: Remove needless actor

For the pointer clone, we actually have 2 actors (one that contains
the sprite, another that moves around). These can just be the same.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1902>

5 years agomagnifier: Add method to enable/disable crosshairs
Carlos Garnacho [Mon, 28 Jun 2021 12:19:15 +0000 (14:19 +0200)]
magnifier: Add method to enable/disable crosshairs

These do some some signals connection and monitor layout tracking
that we forget to disconnect when the magnifier is disconnected.
This causes warnings if enabling the magnifier, disabling it,
switching to another tty, and back. (Presumably also happens for
monitor hotplugs).

This signal should just stay connected as long as it's needed,
so add a setEnabled() method on the CrossHairs actor that we
can hook on the magnifier.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1902>

5 years agomagnifier: Unset variable holding GSource ID
Carlos Garnacho [Mon, 28 Jun 2021 12:17:25 +0000 (14:17 +0200)]
magnifier: Unset variable holding GSource ID

Otherwise we try to remove the no longer existing GSource
later on.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1902>

5 years agoboxpointer: Disable unredirection while visible
Florian Müllner [Mon, 28 Jun 2021 09:57:05 +0000 (11:57 +0200)]
boxpointer: Disable unredirection while visible

Some popovers like the ibus candidate popover may be requested while
showing an unredirected fullscreen window. Disable unredirection
while the popover is visible so that it can actually be shown.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1900>

5 years agointrospect: Allowlist GNOME portal
Georges Basile Stavracas Neto [Mon, 21 Jun 2021 19:32:50 +0000 (16:32 -0300)]
introspect: Allowlist GNOME portal

It too implements app listing and introspection, so list it in the allowlist.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1894>

5 years agoshellDBus: Properly return from D-Bus methods
Florian Müllner [Thu, 17 Jun 2021 13:42:14 +0000 (15:42 +0200)]
shellDBus: Properly return from D-Bus methods

When implementing a D-Bus method synchronously, regular JS methods are
used. That is, whatever the method returns is passed as return value
to the method invocation.

However for asynchronous implementations, we need to explicitly return
a value to the invocation, otherwise the caller will wait until it times
out eventually.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1891>

5 years agoshellDBus: Remove bogus return statements
Florian Müllner [Thu, 17 Jun 2021 13:41:20 +0000 (15:41 +0200)]
shellDBus: Remove bogus return statements

g_dbus_method_invocation_return_value() doesn't have a return value.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1891>

5 years agoshellDBus: Fix FocusApp()
Florian Müllner [Thu, 17 Jun 2021 20:09:14 +0000 (22:09 +0200)]
shellDBus: Fix FocusApp()

The appDisplay used to be accessible via the viewSelector, but
that is gone now. Commit c09c070b15 adjusted the code, but the
replacement uses a Main.overview.appDisplay accessor that never
existed, whoops.

Fix this by exposing a new selectApp() method directly on the
overview, so we don't have to shuffle the appDisplay through
controls → overviewActor → overview.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1891>

5 years agodata: Remove old GConf migration files
Florian Müllner [Thu, 17 Jun 2021 19:31:20 +0000 (21:31 +0200)]
data: Remove old GConf migration files

The migration happened in GNOME 3.6 over 9 years ago. The chances
that someone migrates from 3.0.x or 3.2.x to 41 are very much zero.
And if it were to happen, it wouldn't work anyway, because we stopped
using a separate overrides schema.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1890>

5 years agoUpdate Russian translation
Julia Dronova [Thu, 17 Jun 2021 14:52:00 +0000 (14:52 +0000)]
Update Russian translation

5 years agowindowManager: Remove timeout on starting X11 services
Olivier Fourdan [Tue, 15 Jun 2021 06:50:56 +0000 (08:50 +0200)]
windowManager: Remove timeout on starting X11 services

With Xwayland started on demand, mutter/gnome-shell will spawn Xwayland
and GNOME settings daemon Xsettings.

Currently, gnome-shell uses a timeout of 5 seconds before canceling the
launch and declare failure to start X11 services.

While 5 seconds may seem like a lot of time, when this is executed on a
virtual machine part of a QA tests under load, this causes random
failures.

There is no good value here, we could increase the timeout but it will
always remain racy. Instead, remove the timeout, systemd itself already
has a timeout mechanism (with a much longer wait time).

Thanks to Benjamin Berg <bberg@redhat.com> for finding the root cause
and suggesting the fix.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1888>

5 years agolookingGlass: Use symbolic icons on the toolbar
Chris Mayo [Sun, 13 Jun 2021 15:36:50 +0000 (16:36 +0100)]
lookingGlass: Use symbolic icons on the toolbar

Replace gtk-color-picker, a private GTK 3 icon, with
find-location-symbolic as used in GTK Inspector.

As suggested by Daniel van Vugt.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1671>

5 years agoshell/app: Keep cancellable after cancelled proxy request
Florian Müllner [Sun, 13 Dec 2020 17:57:44 +0000 (18:57 +0100)]
shell/app: Keep cancellable after cancelled proxy request

When a GTK app is started, we create a corresponding GtkApplication
proxy to monitor the app's busy state. If the app is stopped before
the proxy request finishes, we cancel the cancellable before clearing
the running state.

Usually we clear the cancellable once it is no longer needed, namely
when we got the proxy. However when the request was cancelled, the
cancellable has already been cleared, and if there's a cancellable,
it belongs to another request (because the window was added again,
for example when moving between monitors).

Leave that cancellable alone in that case, so we can cancel the
second request as well if necessary to avoid a crash when trying
to set the proxy on a cleared running state.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/1962

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1885>

5 years agooverviewControls: Avoid hiding early AppDisplay when transitioning to Session
Harshad Gavali [Sat, 12 Jun 2021 19:11:52 +0000 (00:41 +0530)]
overviewControls: Avoid hiding early AppDisplay when transitioning to Session

When transitioning from AppDisplay to Session,
AppDisplay should be visible throughout the transition.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4214

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1886>

5 years agolookingGlass: Only pop modal after the transition
Florian Müllner [Wed, 9 Jun 2021 23:55:31 +0000 (01:55 +0200)]
lookingGlass: Only pop modal after the transition

Right now we pop the modal immediately when closing, so the key-release
event of the Escape key ends up in the focus window which may consume it
for leaving fullscreen mode or similar.

We can avoid that in many cases by keeping the modal grab until the end
of the transition, as the key-release event will then likely occur while
the grab is still in place (provided animations are enabled).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1880>

5 years agoUpdate Portuguese translation
Hugo Carvalho [Wed, 9 Jun 2021 18:28:13 +0000 (18:28 +0000)]
Update Portuguese translation

(cherry picked from commit 3e5c7ce5f76fd16e38065c6f4db49fc2676809cf)

5 years agolookingGlass: Avoid a little bit of RedBorderEffect overdraw
Daniel van Vugt [Wed, 9 Jun 2021 06:21:21 +0000 (14:21 +0800)]
lookingGlass: Avoid a little bit of RedBorderEffect overdraw

The left edge of the box was redrawing the bottom left corner when
the bottom edge had already done so.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1876>

5 years agolookingGlass: Paint the RedBorderEffect right edge the correct height
Daniel van Vugt [Wed, 9 Jun 2021 06:09:51 +0000 (14:09 +0800)]
lookingGlass: Paint the RedBorderEffect right edge the correct height

It was being painted one box thickness (`width`) too tall so you could
see a rendering glitch below the bottom right corner until now.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1876>

5 years agodbusServices/screencast: Handle pipeline failures gracefully
Florian Müllner [Wed, 9 Jun 2021 14:42:52 +0000 (16:42 +0200)]
dbusServices/screencast: Handle pipeline failures gracefully

If parsing the pipeline fails for some reason, we currently end up
with a zombie session that leads to a stuck recording indicator in
gnome-shell.

Instead, properly tear down the session to allow mutter and gnome-shell
to correctly update their state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1878>

5 years agoUpdate Catalan translation
Jordi Mas [Tue, 8 Jun 2021 17:42:52 +0000 (19:42 +0200)]
Update Catalan translation

5 years agoportal: Own org.gnome.Shell.Portal for the access portal
Georges Basile Stavracas Neto [Sat, 5 Jun 2021 12:22:00 +0000 (09:22 -0300)]
portal: Own org.gnome.Shell.Portal for the access portal

org.freedesktop.impl.portal.desktop.gnome will be used for the
GNOME implementation of desktop portals in the future, so make
sure GNOME Shell's implementation of the access portal won't
conflict.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1872>

5 years agost/icon: Rebuild shadows when the texture dimensions change
Daniel van Vugt [Thu, 3 Jun 2021 12:16:12 +0000 (20:16 +0800)]
st/icon: Rebuild shadows when the texture dimensions change

Not when the main actor dimensions change. So now the shadows don't get
constantly regenerated during the overview animation. In my case this
reduces the render time of the overview animation (tapping Super) by
approximately 10% with 2 windows, or 20% with 10 windows.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1869>

5 years agoUpdate Chinese (Taiwan) translation
Cheng-Chia Tseng [Thu, 3 Jun 2021 02:10:16 +0000 (02:10 +0000)]
Update Chinese (Taiwan) translation

(cherry picked from commit e8eabad6ab0e99d893875fa7edad3f9de28b0841)

5 years agodnd: Immediately start drag done by pointer devices
Georges Basile Stavracas Neto [Mon, 31 May 2021 13:12:05 +0000 (10:12 -0300)]
dnd: Immediately start drag done by pointer devices

Unlike touch screens, pointer devices (e.g. cursor, touchpad) are
basically never used to switch app grid pages, which is the main
use case for the drag threshold. This point was recently raised
as design feedback.

Immediately start drags when using pointer devices.

See https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3802#note_1124701

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4287

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1866>

5 years agodnd: Factor out calculation into a variable
Georges Basile Stavracas Neto [Mon, 31 May 2021 00:32:54 +0000 (21:32 -0300)]
dnd: Factor out calculation into a variable

Another trivial cleanup. This is in preparation for next commit, that
will expand on this if clause, and will make it a bit more complicated.
Using a variable here makes it easier to read.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1866>

5 years agodnd: Return Clutter.EVENT_STOP instead of true
Georges Basile Stavracas Neto [Mon, 31 May 2021 00:27:51 +0000 (21:27 -0300)]
dnd: Return Clutter.EVENT_STOP instead of true

Trivial cleanup.

Clutter.EVENT_STOP is more semantic, and this 'true' is inconsistent
with the 'return Clutter.EVENT_PROPAGATE;' a few lines above.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1866>

5 years agoworkspaceAnimation: Allow long swipes in session
Georges Basile Stavracas Neto [Sun, 30 May 2021 15:02:12 +0000 (12:02 -0300)]
workspaceAnimation: Allow long swipes in session

As per design feedback, allow long swipes in the session too.

See https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3802#note_1124701

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1865>

5 years agobuild: Fix manpage generation at dist time
Florian Müllner [Tue, 25 May 2021 14:31:29 +0000 (16:31 +0200)]
build: Fix manpage generation at dist time

The AsciiDoc API only exposes the capabilities of asciidoc, but not
the related a2x tool. Fix generating the manpages by shelling out
to the command line tool instead.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4320

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1859>

5 years agoextension-tool: Always print extension location after its creation
Leleat [Fri, 21 May 2021 21:55:28 +0000 (23:55 +0200)]
extension-tool: Always print extension location after its creation

The extension location was only printed, if there was no handler for
the newly created extension. This is confusing for new extension
developers. So always print the extension location.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2515.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1856>

5 years agoworkspaceThumbnail: Destroy thumbnails on destruction
Georges Basile Stavracas Neto [Tue, 25 May 2021 15:03:46 +0000 (12:03 -0300)]
workspaceThumbnail: Destroy thumbnails on destruction

Often, when using multiple monitors, the thumbnails box may be
destroyed before the 'hidden' signal of the Overview is emitted,
which leaves a bunch of lingering signal connections to the
workspace manager.

Call this._destroyThumbnails() in the _onDestroy handler, which
disconnects from workspace manager. This fixes the some of the log
spam that GNOME Shell produces with backtraces of destroyed actors.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1860>

5 years agoextensions-app: Enable hardware acceleration
Florian Müllner [Wed, 19 May 2021 16:23:56 +0000 (18:23 +0200)]
extensions-app: Enable hardware acceleration

GTK4 will make use of it if it's available, so allow it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1854>

5 years agocalendar-server: Fix double-free detection abort
Gustavo Noronha Silva [Tue, 18 May 2021 18:28:43 +0000 (15:28 -0300)]
calendar-server: Fix double-free detection abort

app_notify_events_added uses an intermediate builder to construct an
array that is then added to the main variant using g_variant_builder_add
which should clear the intermediate, but doesn't due to the way it is
passed: by value, rather than as a pointer.

This was debugged with the help of Eduardo Habkost, who believes it
works on x86 due to big structs being passed as pointers.

Fixed: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3440
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1848>

5 years agowindowManager: Ignore error without systemd
Olivier Fourdan [Tue, 18 May 2021 12:04:05 +0000 (14:04 +0200)]
windowManager: Ignore error without systemd

On systems/setups not using systemd, a failure to start gsd-xsettings
with NOT_SUPPORTED does not denote a failure to start Xwayland, just
that we're not using systemd.

In that case, we should just ignore the error, otherwise it will prevent
Xwayland to start on such systems/setups without systemd.

Thanks to Rose Kunkel (@rosekunkel) for spotting the issue/suggesting
the fix.

Fixes: 019229c40e - windowManager: Return failure to start X11 services
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4284
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1850>

5 years agojs: Get idle monitor from backend
Jonas Ådahl [Thu, 6 May 2021 20:31:11 +0000 (22:31 +0200)]
js: Get idle monitor from backend

Its ownership has moved from dangeling to owned by the backend, which
has reflected the API is accessible by. Adapt to this change.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1838>

5 years agoUpdate Occitan translation
Quentin PAGÈS [Sun, 16 May 2021 08:22:48 +0000 (08:22 +0000)]
Update Occitan translation

(cherry picked from commit 2c07918169e6f201a5d87d0a5bc44c1d751cf1aa)

5 years agoBump mutter requirement
Florian Müllner [Fri, 14 May 2021 15:16:35 +0000 (17:16 +0200)]
Bump mutter requirement

5 years agoPost-release version bump
Florian Müllner [Fri, 14 May 2021 14:54:06 +0000 (16:54 +0200)]
Post-release version bump

5 years agoTag release 40.1
Florian Müllner [Wed, 12 May 2021 17:23:43 +0000 (19:23 +0200)]
Tag release 40.1

Update NEWS.

5 years agoUpdate Occitan translation
Quentin PAGÈS [Thu, 13 May 2021 13:47:12 +0000 (13:47 +0000)]
Update Occitan translation

5 years agoworkspacesView: Queue relayout when overview adjustment value change
Georges Basile Stavracas Neto [Wed, 12 May 2021 14:57:23 +0000 (11:57 -0300)]
workspacesView: Queue relayout when overview adjustment value change

The overview adjustment quite significantly impacts the layout of
SecondaryMonitorDisplay(), and this needs to be accounted for by queueing
a relayout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1845>

5 years agoworkspacesView: Don't update secondary monitor thumbnails box if hidden
Georges Basile Stavracas Neto [Wed, 12 May 2021 14:55:34 +0000 (11:55 -0300)]
workspacesView: Don't update secondary monitor thumbnails box if hidden

And save quite a few C/JS trampolines. Since the thumbnails box may not
have up-to-date properties, call _updateThumbnailParams() right after
showing the thumbnails box.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1845>

5 years agoworkspacesView: Increase secondary monitor workspace scale
Georges Basile Stavracas Neto [Wed, 12 May 2021 14:38:09 +0000 (11:38 -0300)]
workspacesView: Increase secondary monitor workspace scale

The current value, 70%, may end up leaving too much unused space on
secondary monitors. The new value of 80% is completely based on trial
and error, but seems to work slightly better.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3820

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1845>

5 years agoappDisplay: Add :gesture-modes property
Florian Müllner [Tue, 11 May 2021 14:44:29 +0000 (16:44 +0200)]
appDisplay: Add :gesture-modes property

Both the main app grid and folders got a swipe tracker, which is
active in both OVERVIEW and POPUP mode. The result is that two
trackers fight over the same events, and everybody loses.

Address this by adding a :gesture-modes property that determines
the allowed modes for the associated swipe tracker.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4256

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1844>

5 years agoappDisplay: Improve app grid interaction for touch devices
Carlos Garnacho [Thu, 18 Mar 2021 18:01:50 +0000 (19:01 +0100)]
appDisplay: Improve app grid interaction for touch devices

Currently, handling of touch devices in the app grid is a bit awkward,
paging by dragging the view can only happen if started from the gaps
between icons, trying to drag from an icon will trigger DnD, and popping
up the menu takes over it all.

Instead, have the app grid actions play this game of rock-paper-scissors:
- Fast swipes on icons trigger scrolling, beats DnD and menu
- Slower press-and-drag on icons trigger DnD, beats scrolling and menu
- Long press triggers menu, beats scrolling, is beaten by DnD

This allows quick swipes to handle navigation, while still allowing the
fine grained operations. DnD, when triggered, dismisses the menu, if
shown.

This all could probably be nicer with a more stateful gesture framework,
we're not there yet though.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3849
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1774>

5 years agograbHelper: Propagate events while this._ignoreUntilRelease
Carlos Garnacho [Thu, 18 Mar 2021 18:00:13 +0000 (19:00 +0100)]
grabHelper: Propagate events while this._ignoreUntilRelease

Let these events to be handled as usual, so that the grabbing actor
can handle input differently (e.g. trigger DnD) while the grabHelper
is active.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1774>

5 years agodnd: Add timeoutThreshold setting
Carlos Garnacho [Thu, 18 Mar 2021 17:58:12 +0000 (18:58 +0100)]
dnd: Add timeoutThreshold setting

This setting (by default, 0) sets a time threshold in order to allow
DnD. If the drag is shorter than this threshold, DnD will be cancelled,
and event handling left to the next handlers.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1774>

5 years agost/button: Consider touch sequences for ::pressed state
Carlos Garnacho [Thu, 18 Mar 2021 17:40:40 +0000 (18:40 +0100)]
st/button: Consider touch sequences for ::pressed state

We do notify on the ::pressed property after touch begin/end and
recording the event sequence, but we do not return the correct value
if the button was triggered via touch.

Consider the event sequence also in the ::pressed getter, so the
button is considered pressed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1774>

5 years agoaltTab: Avoid allocation cycle when showing CyclerHighlight
Sebastian Keller [Tue, 11 May 2021 14:43:37 +0000 (16:43 +0200)]
altTab: Avoid allocation cycle when showing CyclerHighlight

CyclerHighlight was showing and resizing one of its child widgets when
its own allocation was changed, queuing another relayout, resulting in
allocation cycle warnings. Avoid this by updating the size of the
highlight when the frame rect of window has changes rather than the size
of the CyclerHighlight actor itself.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4167
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1842>

5 years agoswitcherPopups: Correct selection with arrows and scrolling using RTL
Leleat [Fri, 7 May 2021 11:26:21 +0000 (13:26 +0200)]
switcherPopups: Correct selection with arrows and scrolling using RTL

The switcherPopups use _next() and _previous() to get the items
in the text direction. I. e. with LTR _next() gets the right item;
on RTL it gets the left item. This doesn't work well with RTL when using
the arrow keys since the text direction doesn't matter in those cases.
Pressing Left Arrow should still move left regardless of text direction.
So use the opposite methods.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2547

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1835>

5 years agowindowManager: Return failure to start X11 services
Olivier Fourdan [Thu, 6 May 2021 13:28:33 +0000 (15:28 +0200)]
windowManager: Return failure to start X11 services

If for some reason the xserver failed to start, mutter/gnome-shell
should not attempt to connect to the X11 display otherwise it will
lock up in XCB.

An indication of such a premature failure of the xserver is when the X11
services fail to start.

Return the status so that the caller can cancel the connection in time
and avoid the lockup of mutter/gnome-shell in case of failure.

This, however, makes the X11 services a critical component to start
Xwayland, meaning that a failure to start those services for any other
reason than the xserver failing to start would still prevent Xwayland
and therefore X11 clients to run in Wayland. This is however a lesser
issue than mutter/gnome-shell locking up.

This basically reverts commit a96753f0 - "windowManager: X11 can work
without gsd-xsettings".

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1837>

5 years agoappDisplay: Extend faded edges beyond fade area
Florian Müllner [Wed, 5 May 2021 12:59:18 +0000 (14:59 +0200)]
appDisplay: Extend faded edges beyond fade area

Now that the fade effect was reverted to the old behavior by default,
the app grid must opt-in extend faded edges beyond the regular fade
area.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1831>

5 years agost/scroll-view-fade: Add :extend-fade-area property
Florian Müllner [Mon, 3 May 2021 17:39:06 +0000 (19:39 +0200)]
st/scroll-view-fade: Add :extend-fade-area property

Since commit f60a469a34e, everything outside the fade area is painted
fully transparent. That is required for the fade effect during app
grid navigation, to prevent unfaded parts of surrounding pages
becoming visible on wide-screen displays.

However in most other cases, that behavior is the exact opposite
of what we want: Elements outside the fade area (like scroll bars)
should never fade.

In order to fix the regular case, hide the new behavior behind a
property.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4234

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1831>

5 years agowindowManager: Hide overview on using hotkey
Nishal Kulkarni [Sat, 8 May 2021 10:28:06 +0000 (15:58 +0530)]
windowManager: Hide overview on using hotkey

Change behavior on pressing Super+Number in Activities/Overview mode
so that the overview mode is hidden and application can be used.

This makes it consistent with clicking icon in the dash.

Closes: #4212
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1839>

5 years agoworkspace: Update WorkspaceLayout workarea on changes
Sebastian Keller [Tue, 16 Mar 2021 20:26:33 +0000 (21:26 +0100)]
workspace: Update WorkspaceLayout workarea on changes

Previously the workarea was only set on construction and then never
updated. As a result the preferred width and height as well as the
allocation were based on an outdated workarea size when it changed after
construction. This for example was happening during the startup
animation, for which the WorkspaceLayout is constructed before the panel
is shown. This caused the workspace in the overview to be slightly
smaller when it is first shown and the overview closing animation to
not expand the workspace to the correct size the first time it is
closed.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3945
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3816

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1771>

5 years agoUpdate Occitan translation
Quentin PAGÈS [Sun, 9 May 2021 18:47:57 +0000 (18:47 +0000)]
Update Occitan translation

5 years agoUpdate Catalan translation
Jordi Mas [Fri, 7 May 2021 16:57:46 +0000 (18:57 +0200)]
Update Catalan translation

5 years agooverview: Sync grabs after running startup animation
Jonas Dreßler [Thu, 15 Apr 2021 14:58:17 +0000 (16:58 +0200)]
overview: Sync grabs after running startup animation

In the nested session the startup animation sometimes fails, weirdly
that always happens to me when running a freshly built gnome-shell the
first time. The reason it fails is that mutter fails to aquire a pointer
grab from the xserver, XIGrabDevice() is unsuccessful.

A simple workaround for this race condition in the xserver is to just
grab the devices a bit later, that is after the startups animation
instead of before it.

This was also tested with disabled animations, and seems to work just as
well in that case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1812>

5 years agodnd: Don't use transformed size to calculate parent scale when restoring
Sebastian Keller [Wed, 31 Mar 2021 02:16:57 +0000 (04:16 +0200)]
dnd: Don't use transformed size to calculate parent scale when restoring

Some drag actor parents might change their width to 0 after the drag
actor has been removed. If the drag is now canceled and the drag actor
is animated to return to the current parent position and scale, this
scale can not be determined and falls back to 1.0. This might be wrong
and can result in the drag actor being too large/small at the end of the
return animation.

To avoid this calculate the scale of the parent by recursively
calculating the product of its parents individual scales.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4017

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1790>

5 years agooverview: Increase margin-top of the dash slightly
Jonas Dreßler [Tue, 4 May 2021 13:24:01 +0000 (15:24 +0200)]
overview: Increase margin-top of the dash slightly

Now that we made window previews overlap the edges of the wallpaper
underneath them, the app icons of those windows are getting quite close
to the dash and there is almost no more spacing.

Let's make it look a little bit better and slightly increase the
margin-top of the dash so that the workspaces move a few more pixels
away from the dash.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1813>

5 years agoworkspace: Extend clip when animating from window picker to app grid
Jonas Dreßler [Wed, 10 Mar 2021 12:24:07 +0000 (13:24 +0100)]
workspace: Extend clip when animating from window picker to app grid

We want to clip the Workspace actor in the appGrid state of the overview
in order to make sure windows that overflow the monitor don't spill out.
So far we had commit b1970b95b8813c00895f3da9f4fc88ca04627954 for that.

Now since the last commit, window previews always slightly overflow the
allocation with their icons. That means a part of the window icon gets
clipped away as soon as the transition to the appGrid starts, which
looks weird.

Fix that bug in the transition by slightly extending the clip downwards
when animating between the window picker and the app grid state. The
extra height we extend the clip by is controlled by the overviewState,
which means we extend the clip by the full icon overlap in the window
picker state, but don't extend the clip at all when in the app grid
state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1813>

5 years agoworkspace: Make window preview overlays overflow the allocation
Jonas Dreßler [Fri, 12 Feb 2021 15:40:36 +0000 (16:40 +0100)]
workspace: Make window preview overlays overflow the allocation

We want to use as much space as possible for showing window previews in
the overview, and the title and close buttons of those windows are only
visible on hover, so we can show them above anything if we want.

On both primary monitors and secondary monitors, there's a certain free
space available towards the bottom edge of the monitor (on the primary
monitor we show the dash there, and secondary monitors just scale down
the Workspaces). We can make use of this by checking how much free space
there is available from the bottom edge of our allocation to the bottom
edge of the monitor, and then aligning the window previews to make full
use of this space.

So stop adding any padding to the edges of the Workspace, which will
make the windows a lot larger and completely fill the Workspaces
allocation.

The left, top and right monitor edges should always be far enough away
to accomodate the close button and hover scale-up of the window. Only
with the bottom edge of the monitor we have to be a bit more careful
(the overflowing height of the window title is quite big), so there we
check if enough free space is available. If there isn't enough free
space, we simply apply a bit of bottom padding again and shift the
window up.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1813>

5 years agoworkspacesView: Clip the SecondaryMonitorDisplay instead of the view
Jonas Dreßler [Wed, 3 Mar 2021 11:37:51 +0000 (12:37 +0100)]
workspacesView: Clip the SecondaryMonitorDisplay instead of the view

Make the SecondaryMonitorDisplay a bit more similar to the
ControlsManager container on the primary monitor, and clip that widget
instead of the WorkspacesViews on secondary monitors.

This will allow us to overpaint the WorkspacesView allocation and paint
the WindowPreview overlays like the title and close button outside the
allocation with the next commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1813>

5 years agoscreencastService: Improve the gstreamer pipeline for recording
Jonas Dreßler [Tue, 26 Jan 2021 08:31:49 +0000 (09:31 +0100)]
screencastService: Improve the gstreamer pipeline for recording

The current gstreamer pipeline performs quite bad on slower machines and
is dropping lots of frames, improve the pipeline by changing a few
things:

- Use threads for videoconvert and improve speed of videoconvert by
disabling some unneeded things
- Add a queue before the encoding step, this allows the encoder to work
at its own pace and will lead to a lot more stability
- Remove the fixed quantizer and only set a max quantizer, this helps
quite a bit with performance
- Change the deadline parameter of vp8enc to 1: This makes the encoder
go into real time mode, which will make it a lot faster
- Set cpu-used to 16, the maximum possible value.
- Set static-threshold to 1000, static-threshold is the motion detection
threshold, and while a value of 100 is recommended for screencasting in
the gstreamer documentation (see [1]), using 1000 appears to perform a
lot better and still outputs fairly good quality
- Set a larger buffer size than the default size, this seems to get a
bit more stability during high load scenarios

All in all, those changes make the pipeline drop no more frames when
recording at 30 FPS and 2K screen resolution. That was tested on a
fairly recent mobile core-i5 processor.

Also, because we now have two %T replacement strings for the number of
threads, we need to switch to replaceAll(). For that to work, we have to
put the %T matching expression into quotes.

[1] https://gstreamer.freedesktop.org/documentation/vpx/GstVPXEnc.html?gi-language=c#GstVPXEnc:static-threshold

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1633>

5 years agoextensionsService: Log error if preferences dialog failed to open
Simon Schneegans [Sat, 1 May 2021 18:15:50 +0000 (18:15 +0000)]
extensionsService: Log error if preferences dialog failed to open

This is helpful for continuous integration checks to see whether the
preferences dialog of an extension can be opened successfully.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1830>

5 years agotheme: Move :hover below :focus in %bubble_button
theRealPadster [Mon, 19 Apr 2021 02:05:58 +0000 (22:05 -0400)]
theme: Move :hover below :focus in %bubble_button

Fix issue where background colour of modal buttons do not update when
hovering over a focused button.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1818>

5 years agoUpdate Nepali translation
Pawan Chitrakar [Sat, 1 May 2021 11:11:13 +0000 (11:11 +0000)]
Update Nepali translation

5 years agotheme: Rotate placeholder for horizontal workspace-thumbnails
Joonas Henriksson [Fri, 9 Apr 2021 15:19:11 +0000 (18:19 +0300)]
theme: Rotate placeholder for horizontal workspace-thumbnails

On the new horizontal workspace-thumbnails, the old placeholder from
vertical dash appeared too small, and was easily hidden behind the
dragged window/icon. Rotate the placeholder 90 degrees to better fill
the spacing between thumbnails.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1801>

5 years agodnd: Don't try to restore to parent location if parent got destroyed
Sebastian Keller [Sat, 17 Apr 2021 17:53:43 +0000 (19:53 +0200)]
dnd: Don't try to restore to parent location if parent got destroyed

The original parent of a dragged actor might have been destroyed after
the drag has been started. When the drag is canceled and _dragOrigParent
is set, the code is trying to get the current position and size of it
when restoring. With a destroyed parent this however would result in a
crash.

This could happen for example when starting a drag on a window preview
while the overview is hiding and then releasing it once the transition
is done.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4024

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1817>

5 years agoworkspaceThumbnail: Only create thumbnails once
Sebastian Keller [Thu, 29 Apr 2021 14:07:21 +0000 (16:07 +0200)]
workspaceThumbnail: Only create thumbnails once

`ThumbnailsBox` listens for the `showing` signal from the `Overview` to
create its thumbnails and destroys them on the `hide` signal. Since the
`showing` signal can be emitted multiple times when switching between
the shown and hidden state without ever fully completing the transition,
this will cause `_createThumbnails` to be called multiple times, each
time adding another set of workspaces.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3819
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1828>

5 years agooverviewControls: Stop transitions when starting a gesture
Sebastian Keller [Thu, 29 Apr 2021 13:51:11 +0000 (15:51 +0200)]
overviewControls: Stop transitions when starting a gesture

When starting a gesture to open the overview while a transition to hide
the overview is running, Overview._shown will be first set to false when
starting the transition and then to true by the gesture before the
`onComplete` callback is called. The `onComplete` callback in this case
is `Overview._hideDone()` which starts a transition to show the overview
again which also emits the `showing` signal. Since the gesture emits a
`showing` signal as well, this results in two consecutive `showing`
signals without a `hiding` signal in between.

This breaks the `searchControler` which adds a key press handler to
start the search on `showing` and removes it on `hiding`. So every time
this happens a new handler that will never be removed is added,
resulting in the first key press being repeated.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4004
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3819
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1828>

5 years agoappMenu: Only show Open Windows, if there are at least 2 windows
Leleat [Wed, 28 Apr 2021 23:09:50 +0000 (01:09 +0200)]
appMenu: Only show Open Windows, if there are at least 2 windows

It doesn't make sense to show the 'Open Windows' in the app menu,
if the app only has 1 open window to switch between. Hide the
window section in that case.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4199.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1827>

5 years agotheme: App group styling
Jakub Steiner [Thu, 8 Apr 2021 19:03:59 +0000 (21:03 +0200)]
theme: App group styling

 * Use the same style as the dash.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4002

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1800>

5 years agoappDisplay: Don't use symbolic icon at full size for system actions
Sebastian Keller [Mon, 22 Mar 2021 00:50:25 +0000 (01:50 +0100)]
appDisplay: Don't use symbolic icon at full size for system actions

When attempting to account for scaling in e65e5ede the icon_size of the
StIcon was set to the target size, overriding the icon-size set in the
'system-action-icon' CSS, which was only half the size. The intent of
that commit however was not to scale up the symbolic icon, but the
circle around it. Do this by manually applying the scaling factor.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3940

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1777>

5 years agodbusServices/screensaver: Disable auto-shutdown
Florian Müllner [Tue, 27 Apr 2021 19:07:05 +0000 (21:07 +0200)]
dbusServices/screensaver: Disable auto-shutdown

For the screensaver service, it is quite normal that a consumer only
subscribes to the "ActiveChanged" signal without calling any methods.

The result is that we don't know about the consumer, and shut down
the service anyway after we hit the timeout.

If this happens, we break functionality like gnome-settings-daemon's
screen blanking on idle.

Fix this by simply disabling auto-shutdown for the service, which
also reflects the expectation that the screen saver service is
always running in a GNOME session.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4114

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1824>

5 years agogdm: Remove pending fingerprint verification failure
Benjamin Berg [Wed, 28 Apr 2021 16:32:22 +0000 (18:32 +0200)]
gdm: Remove pending fingerprint verification failure

It can happen that we get a problem report and a verification failure at
the same time. For fingerprint, a problem report can result in an
internal verification failure to be queued.

Remove this queued failure again if we got a failure already from GDM
directly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1821>

5 years agogdm: Only disconnect verification signals when not going to retry
Ray Strode [Wed, 28 Apr 2021 14:44:56 +0000 (10:44 -0400)]
gdm: Only disconnect verification signals when not going to retry

At the moment a failure in a background service can lead to the
various verification signals getting disconnected, even though
we still need them for a foreground service.

This commit changes the code to only disconnect when we've run
out of tries.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1821>

5 years agogdm: Flip canRetry boolean to doneTrying on verification failure
Ray Strode [Wed, 28 Apr 2021 14:42:14 +0000 (10:42 -0400)]
gdm: Flip canRetry boolean to doneTrying on verification failure

This commit flips a boolean in the verification failed handler
to make things easier to read.

It also moves the retry logic to the bottom where it makes more
logical sense.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1821>

5 years agoauthPrompt: Don't fail auth prompt until user is out of retries
Ray Strode [Wed, 28 Apr 2021 14:38:58 +0000 (10:38 -0400)]
authPrompt: Don't fail auth prompt until user is out of retries

At the moment we set the state of the auth prompt to failed any
time the user fails an attempt. But verification is still going
on until the user exhausts all attempts, so that's wrong.

This commit changes it to only set the state to failed when the
user is out of tries.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1821>

5 years agoauthPrompt: Don't clear querying service unless querying service fails
Ray Strode [Wed, 28 Apr 2021 14:36:46 +0000 (10:36 -0400)]
authPrompt: Don't clear querying service unless querying service fails

At the moment we treat a failure in any service as a signal to stop
tracking users responses to service questions.

This commit makes sure we don't stop waiting for answers if a background
service fails.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1821>

5 years agowindowPreview: Make St.Label use single line mode
Leleat [Fri, 23 Apr 2021 18:25:07 +0000 (20:25 +0200)]
windowPreview: Make St.Label use single line mode

When a windowPreview is hovered or selected, it will show its window's
title as a caption. That title may contain Newline characters which will
effect the windowPreview size. Make the caption's St.Label use single
line mode to prevent that.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4162

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1822>

5 years agoscreenshot: Ignore events in SelectArea after making a selection
Sebastian Keller [Wed, 28 Apr 2021 05:15:03 +0000 (07:15 +0200)]
screenshot: Ignore events in SelectArea after making a selection

The grab and actor are only removed after the selection rectangle has
finished fading out. During this time it was possible to still change
the position of the selection rectangle.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2761
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1825>

5 years agoscreenshot: Only select area on button release after a button down
Sebastian Keller [Wed, 28 Apr 2021 05:13:35 +0000 (07:13 +0200)]
screenshot: Only select area on button release after a button down

On Wayland it is possible to trigger area selection with a button
already being down. SelectArea would then react to the subsequent button
release without ever having seen a corresponding button down first,
leaving the start coordinates of the selection rectangle uninitialized.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/2761
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1825>

5 years agokeyboard: Always emit ::pressed late on keys with variants
Carlos Garnacho [Thu, 1 Apr 2021 17:25:24 +0000 (19:25 +0200)]
keyboard: Always emit ::pressed late on keys with variants

When we press a key with variants, we used to prevent an
early ::pressed, because a long press could show the options
popover, and the press be undone.

In addition, this long press could move to one of the suboptions,
and be released there. For this case we also want this late
emission of the ::pressed signal.

This makes the "tap, drag, release" pattern work on the
regular OSK keys, in addition to the emoji panel.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1789>

5 years agokeyboard: Allow calling _release() without press on OSK keys with touch
Carlos Garnacho [Mon, 22 Mar 2021 17:01:39 +0000 (18:01 +0100)]
keyboard: Allow calling _release() without press on OSK keys with touch

This is already allowed for pointer events, but touch events still expected
that the touch begin and end happen on the same Key actor. Change this
behavior for touch events, this is necessary for the tap-drag-release
pattern to select key variants to work on all input devices.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1789>

5 years agostatus/power: Always show real percentage in battery label
Prajna Sariputra [Thu, 1 Apr 2021 09:20:29 +0000 (20:20 +1100)]
status/power: Always show real percentage in battery label

We currently display the percentage as "100%" if the battery state is
"fully charged", but the actual capacity may be lower than that.

Just show the real percentage, which is consistent with Settings.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3393

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1787>

5 years agost: Only use clutter_actor_invalidate_paint_volume() if the API exists
Jonas Dreßler [Mon, 12 Apr 2021 18:49:10 +0000 (20:49 +0200)]
st: Only use clutter_actor_invalidate_paint_volume() if the API exists

With commits fab39bbea5d9a7a0330a1be548f8ee26cd7e3131 and
62e40a13506b4481a50944be886b36566c464dc0 we started depending on a new
ClutterActor API: clutter_actor_invalidate_paint_volume()

Given that this commit was applied to the 40 stable release, it broke
ABI compatibility with mutter, which is something we guarantee between
stable releases. So use GModule to dynamically find the symbol in our
loaded libraries. If it exists, use it and invalidate the paint volume.
If it doesn't exist, libmutter is still at version 40.0 and we don't
need to invalidate the paint volume.

This also adds a dependency on gmodule. We need to link against gmodule
to use g_module_open() and g_module_symbol() APIs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1807>

5 years agoUpdate Russian translation
Stas Solovey [Sun, 25 Apr 2021 19:52:35 +0000 (19:52 +0000)]
Update Russian translation

5 years agologinDialog: Allow timed login with disabled user list
Ray Strode [Tue, 13 Apr 2021 14:59:49 +0000 (10:59 -0400)]
loginDialog: Allow timed login with disabled user list

At the moment the timed login feature is implemented in the user list.
If there's no user list, we don't show the indicator anywhere and
don't proceed with timed login.

This commit allows timed login to work when the user list is disabled.
It accomplishes this by putting the timed login indicator on the
auth prompt in that scenario.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1809>

5 years agologinDialog: Realign list of batch tasks
Ray Strode [Wed, 14 Apr 2021 13:31:40 +0000 (09:31 -0400)]
loginDialog: Realign list of batch tasks

The way the batch tasks are currently aligned doesn't jive with
with eslint likes.

This commit moves it over a bit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1809>

5 years agoaltTab: Avoid setting GObject property to undefined instead of null
Sebastian Keller [Fri, 23 Apr 2021 14:10:52 +0000 (16:10 +0200)]
altTab: Avoid setting GObject property to undefined instead of null

The windowActor in the CyclerHighlight was set to undefined if
this._window was null. This was causing an error when trying to set it
as a property.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4167

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1820>

5 years agooverviewControls: Support double-super when animations are off
Florian Müllner [Thu, 15 Apr 2021 10:00:12 +0000 (12:00 +0200)]
overviewControls: Support double-super when animations are off

When super is pressed again during the overview transition, we shift
up to the app grid. That means that the feature currently doesn't
work when animations are disabled (like in a VM), because there is
no transition in that case.

Address this by adding a time-based fallback in that case, i.e.
shift up when a second super-press occurs within 250ms after the
first one.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4121

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1811>